package com.yuesystem.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuesystem.dto.requestbody.GradeRequestBody;
import com.yuesystem.dto.responsebody.OfficeNumberResponseBody;
import com.yuesystem.entity.Office;
import java.util.List;

/**
 * 官职接口.
 */
public interface OfficeService extends IService<Office> {
  /**
   * 增加官职.
   */
  boolean add(Office office);
  
  /**
   * 根据官职名字查询对应的ID号.
   */
  List<Long> getByName(String name);
  
  
  /**
   * 根据搜索框中的名称进行查询.
   */
  List<Office> search(String name);
  
  
  /**
   * 获得朝代的品阶分布.
   */
  List<GradeRequestBody> getByGrade();
  
  /**
   * 获得每个朝代的官职分页结果.
   */
  Page<Office> getPage(int page, int pageSize, String dynastyGrade);
  
  
  /**
   * 获得每个朝代的官职分页结果.
   */
  Page<Office> getPage1(int page, int pageSize, String dynasty, String grade);
  
  /**
   * 获得各个朝代官职的数量.
   */
  List<OfficeNumberResponseBody> getNumber();
  
  
  /**
   * 根据朝代获得各个品阶官职的数量.
   *
   * @param index 朝代
   * @return 官职数
   */
  List<OfficeNumberResponseBody> getGradeNumber(int index);
  //public List<OfficeItem> getGradeNumber(int index);
}
